This invention relates generally to methods for configuring computer systems, such a method being the process for recognizing and enabling the elements of the system so that the elements operate together properly. More particularly, this invention relates to a dynamic method for configuring computer systems which recognizes system elements wherever they may be found in the configuration.
Computer systemsxe2x80x94whether uniprocessor machines such as personal computers or multiprocessor computers that contain separate but interconnected processor nodesxe2x80x94are comprised of a number of different system elements such as buses, disks, and other devices that must cooperate for the system to operate properly. Bringing about this cooperation is the task of a configuration procedure within the operating system of the computer. A configuration procedure recognizes and enables the hardware devices in the system by communicating system information between the software drivers for the devices and the operating system. Autoconfiguration processes, which are well known in the art, work automatically to configure a system without the need for intervention by a system administrator. Such a process looks for certain types of hardware devices at specific system locations and reports to the operating system which device type is found at each location. See, for example, the description of a typical autoconfiguration procedure in the UNIX operating system given by McKusick et al. in The Design and Implementation of the 4.4 BSD Operating System (Addison-Wesley 1996).
A drawback of present autoconfiguration processes is their static nature. They typically rely on a table-like structure that represents the largest possible configuration, with each table location corresponding to a possible location in the computer system for a specified type of device. The autoconfiguration procedure looks only for the specified type(s) of devices at each system location and reports whether a device of the specified type is found or not found at that location. This approach works well enough with simpler, standard computer systems where all probable configurations can be anticipated. It does not work well, however, for systems such as large multiprocessor systems whose configurations are often customer-specific and continually changing. Using conventional configuration processes in such systems requires that the processes be constantly updated to anticipate new system configurations, a costly and time-consuming effort.
An objective of the invention, therefore, is to provide a dynamic method for configuring a computer system, one that does not rely on predetermined configurations but can recognize and enable system devices regardless of there system locations. Another objective of the invention is to provide a method for configuring a computer system with multiple paths between system devices.
A method for configuring devices within a computer system provides device configuration information for types of devices that may be included within the computer system. The device configuration information for a device type includes interface types by which devices of that device type connect to other devices. The method includes determining the interface types of a current object associated with a device. Device types that can exist on a determined interface type of the current object are probed for. A child object is created for a device found from the probing and a link between the current object and the child object is also created. A child object is then made the current object, and the above actions are repeated at least until the devices to be configured within the system have associated objects linked together.
These and other aspects of the invention are more fully described below with reference to an illustrative embodiment.